#pragma once

#include "../umlmodel_global.h"

namespace uml {

/// <summary>
/// ParameterEffectKind
/// ParameterEffectKind is an Enumeration that indicates the effect of a Behavior on
/// values passed in or out of its parameters.
/// </summary>
enum class UMLMODEL_EXPORT ParameterEffectKind {

    /// <summary>
    /// 
    /// Indicates that the behavior creates values.
    /// </summary>
    kcreate,

    /// <summary>
    /// 
    /// Indicates objects that are values of the parameter have values of their
    /// properties, or links in which they participate, or their classifiers retrieved
    /// during executions of the behavior.
    /// </summary>
    kread,

    /// <summary>
    /// 
    /// Indicates objects that are values of the parameter have values of their
    /// properties, or links in which they participate, or their classification changed
    /// during executions of the behavior.
    /// </summary>
    kupdate,

    /// <summary>
    /// 
    /// Indicates objects that are values of the parameter do not exist after executions
    /// of the behavior are finished.
    /// </summary>
    kdelete,
};

} // namespace uml
